{
  buildPythonPackage,
  ddt,
  hacking,
  jsonschema,
  lib,
  openstacksdk,
  oslo-config,
  oslotest,
  prometheus-client,
  requests-mock,
  stdenv,
  stestr,
  testscenarios,
}:

buildPythonPackage {
  pname = "openstacksdk-tests";
  inherit (openstacksdk) version src;
  format = "other";

  dontBuild = true;
  dontInstall = true;

  nativeCheckInputs = [
    ddt
    hacking
    jsonschema
    openstacksdk
    oslo-config
    oslotest
    prometheus-client
    requests-mock
    stestr
    testscenarios
  ];

  checkPhase = ''
    stestr run -e <(echo "
  ''
  + lib.optionalString stdenv.hostPlatform.isAarch64 ''
    openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_node_set_provision_state_with_retries
    openstack.tests.unit.cloud.test_role_assignment.TestRoleAssignment.test_grant_role_user_domain_exists
    openstack.tests.unit.cloud.test_volume_backups.TestVolumeBackups.test_delete_volume_backup_force
    openstack.tests.unit.object_store.v1.test_proxy.TestTempURLBytesPathAndKey.test_set_account_temp_url_key_second
    openstack.tests.unit.cloud.test_security_groups.TestSecurityGroups.test_delete_security_group_neutron_not_found
  ''
  + ''
    openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_wait_for_baremetal_node_lock_locked
    openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_inspect_failed
    openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_available_wait
    openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_wait
    openstack.tests.unit.cloud.test_image.TestImage.test_create_image_task
    openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_error_396
    openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_wait
    openstack.tests.unit.image.v2.test_proxy.TestTask.test_wait_for_task_error_396
    openstack.tests.unit.image.v2.test_proxy.TestTask.test_wait_for_task_wait
    openstack.tests.unit.test_resource.TestWaitForDelete.test_callback
    openstack.tests.unit.test_resource.TestWaitForDelete.test_callback_without_progress
    openstack.tests.unit.test_resource.TestWaitForDelete.test_status
    openstack.tests.unit.test_resource.TestWaitForDelete.test_success_not_found
    openstack.tests.unit.test_resource.TestWaitForStatus.test_callback
    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails
    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails_different_attribute
    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match
    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match_with_none
    openstack.tests.unit.test_stats.TestStats.test_list_projects
    openstack.tests.unit.test_stats.TestStats.test_projects
    openstack.tests.unit.test_stats.TestStats.test_servers
    openstack.tests.unit.test_stats.TestStats.test_servers_no_detail
    openstack.tests.unit.test_stats.TestStats.test_timeout
    ")
  '';
}
